压缩解压缩工具(gzip/gunzip、bzip2/bunzip2、zip/unzip、xz)和打包命令(tar) 您所在的位置:网站首页 tar 打包目录下所有文件 压缩解压缩工具(gzip/gunzip、bzip2/bunzip2、zip/unzip、xz)和打包命令(tar)

压缩解压缩工具(gzip/gunzip、bzip2/bunzip2、zip/unzip、xz)和打包命令(tar)

2024-01-10 10:52| 来源: 网络整理| 查看: 265

压缩、解压、打包命令 gzip、gunzip命令1.用途/注意:2.命令的使用格式:3.gzip和gunzip实例: bzip2、bunzip2命令1.用途、注意:2.命令使用:3.bzip2和bunzip2实例: zip、unzip命令1.用途、注意:2.命令的使用格式:3.zip、unzip实例: xz命令:1.用途、注意:2.使用格式:3.xz命令使用实例: tar命令:1.用途、注意:2.命令格式:3.tar命令实例:

-----windos可以解压所有linux系统的文件压缩包,但linux不一定能够全部解压windos的------

打包和压缩:

打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。 gzip、gunzip命令 1.用途/注意: gizp命令用来压缩文件,文件格式为*.gz;该命令只能压缩文件,而不能压缩目录,压缩文件会在源文件的文件名后自动添加".gz"。gunzip命令实际上功能和"gzip -d"一样。gzip和gunzip命令不论是压缩还是解压缩文件后,都不保留原文件。 2.命令的使用格式:

注意:gunzip=gzip -d(可以看/sur/bin/gunzip文件) #gzip [OPTION]… [FILE]… [OPTION]: -f或–force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 -d:解开压缩文件。 -r或–recursive  递归处理(压缩/解压缩),将指定目录下的所有文件及子目录下的文件…都单独压缩为.gz格式。 -h:在线帮助; -l或–list:列出压缩文件的相关信息。 -L或–license:显示版本与授权信息。 -n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。 -N或–name  压缩文件时,保存原来的文件名称及时间戳记。 -t或–test  测试压缩文件是否正确无误。 -v或–verbose  显示指令执行过程。 -V或–version  显示版本信息。 #gunzip [OPTION]… [FILE]… [OPTION]: -f或–force:强行解开压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 -r或–recursive  递归处理,将指定目录下的所有文件及子目录下的文件…一并处理。 -h:在线帮助; -l或–list:列出压缩文件的相关信息。 -L或–license:显示版本与授权信息。 -n或–no-name  解压缩文件时,不保存原来的文件名称及时间戳记。 -N或–name  解压缩文件时,保存原来的文件名称及时间戳记。 -t或–test  测试压缩文件是否正确无误。 -v或–verbose  显示指令执行过程。 -V或–version  显示版本信息。 查看gzip格式的压缩文件内容: #zcat a.txt.gz

3.gzip和gunzip实例: 压缩文件a.txt [root@centos7 test]#ls a.txt [root@centos7 test]#gzip a.txt [root@centos7 test]#ls a.txt.gz 压缩目录testdir目录下的所有子文件 [root@centos7 test]#tree . └── testdir ├── adir │ └── a1.txt ├── bdir ├── f1.txt └── f2.txt 3 directories, 3 files [root@centos7 test]#gzip -r /root/test/testdir [root@centos7 test]#tree . └── testdir ├── adir │ └── a1.txt.gz ├── bdir ├── f1.txt.gz └── f2.txt.gz 3 directories, 3 files 解压缩testdir目录下的所有被压缩的以.gz结尾的压缩文件。 [root@centos7 test]#gunzip -r testdir //或gizp -dr testdir [root@centos7 test]#tree . └── testdir ├── adir │ └── a1.txt ├── bdir ├── f1.txt └── f2.txt 3 directories, 3 files bzip2、bunzip2命令 1.用途、注意: bzip2、bunzip2命令是压缩/解压缩的.bz2文件格式包。只能压缩/解压文件,不能支持目录。bzip2命令是gzip的升级版,都是压缩文件。且非常适合压缩一些大型文件。bzip2、bunzip2命令默认情况下都是压缩/解压缩后删除原始文件。要保留源文件需要加-k参数。bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效果相同 2.命令使用:

#bzip2 [options] FILENAME [options]: -f或–force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,命令会执行失败,默认不会覆盖现有文件。若要覆盖,请使用此参数。 -k或–keep:bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。 -t或–test:测试.bz2压缩文件的完整性。 -v或–verbose:压缩或解压缩文件时,显示详细的信息。 -压缩等级(-1~-9):在压缩时将块长度设为 100 k、200 k … 900 k,一般来说等级9的压缩比最大,默认是等级9。对解压缩没有影响。 -d:强制解压缩==bunzip2 #bunzip2 [options] FILENAME.bz2 -f或–force:解压缩时,若输出文件与现有文件同名,命令会执行失败,默认不会覆盖现有文件。若要覆盖,请使用此参数。 -k或–keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数。 -s或–small:降低程序执行时,内存的使用量。 -v或–verbose:解压缩文件时,显示详细的信息。 -L,–license,-V或–version:显示版本信息。

3.bzip2和bunzip2实例: 将f1.txt文件压缩为.bz2格式,同时保留原文件。 [root@centos7 testdir]#ls adir bdir f1.txt [root@centos7 testdir]#bzip2 -k f1.txt [root@centos7 testdir]#ls adir bdir f1.txt f1.txt.bz2 将f1.txt.bz2文件解压缩,同时覆盖掉原有文件,且保留压缩文件 [root@centos7 testdir]#cat f1.txt wad [root@centos7 testdir]#bunzip2 -fk f1.txt.bz2 //等同于#bzip2 -dfk f1.txt.bz2 [root@centos7 testdir]#ls adir bdir f1.txt f1.txt.bz2 f2.txt f3.txt [root@centos7 testdir]#cat f1.txt awdada 将等大小文件f2.txt和文件f3.txt安装等级1和9,分别压缩,且保留原文件。 [root@centos7 testdir]#ll -h total 246M drwxr-xr-x 2 root root 52 Mar 29 17:41 adir drwxr-xr-x 2 root root 6 Mar 29 17:01 bdir -rw-r--r-- 1 root root 123M Mar 30 14:58 f2.txt -rw-r--r-- 1 root root 123M Mar 30 14:54 f3.txt [root@centos7 testdir]#bzip2 -1k f2.txt [root@centos7 testdir]#bzip2 -9k f3.txt [root@centos7 testdir]#ll -h total 246M drwxr-xr-x 2 root root 52 Mar 29 17:41 adir drwxr-xr-x 2 root root 6 Mar 29 17:01 bdir -rw-r--r-- 1 root root 123M Mar 30 14:58 f2.txt -rw-r--r-- 1 root root 820 Mar 30 14:58 f2.txt.bz2 -rw-r--r-- 1 root root 123M Mar 30 14:54 f3.txt -rw-r--r-- 1 root root 114 Mar 30 14:54 f3.txt.bz2 [root@centos7 testdir]#file f2.txt.bz2 f2.txt.bz2: bzip2 compressed data, block size = 100k [root@centos7 testdir]#file f3.txt.bz2 f3.txt.bz2: bzip2 compressed data, block size = 900k zip、unzip命令 1.用途、注意: zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。unzip为.zip压缩文件的解压缩程序。该命令可以压缩或解压缩.zip的目录以及文件。.zip压缩文件在linux和windwos中是通用的。默认情况下压缩/解压缩后会保留原文件;压缩目录需加 -r。 2.命令的使用格式:

zip命令格式:#zip [-options] [-b path] [-t yyyy-mm-dd] [-n suffixes] [zipfile list] [-xi list] [options]: -r 递归处理,将指定目录下的所有文件和子目录一并处理。 -q 不显示指令执行过程。 -m 把原文件移到压缩文件中并删除原文件。(即将原文件压缩后,并将原文件加入到压缩文件中,同时删除原始文件。) -d 从压缩文件内删除指定的文件。 -h 在线帮助。 -L 显示版权信息。 -T 检查压缩文件内的每个文件是否正确无误。 -v 显示指令执行过程或显示版本信息。 -z 替压缩文件加上注释(只加参数即可,注释在命令回车后添加)。 unzip命令格式:#unzip [-Z] [-options]] file[.zip] [list] [-x xlist] [-d exdir] [options] -l 显示压缩文件内所包含的文件。 -v 执行是时显示详细的信息。 -z 仅显示压缩文件的备注文字。

3.zip、unzip实例: 压缩f1.txt文件 [root@centos7 testdir]#ls adir bdir f1.txt f2.txt [root@centos7 testdir]#zip f1.txt.zip f1.txt adding: f1.txt (stored 0%) [root@centos7 testdir]#ls adir bdir f1.txt f1.txt.zip f2.txt 解压缩f1.txt.zip文件 [root@centos7 adir]#ls a1.txt f1.txt.zip [root@centos7 adir]#unzip f1.txt.zip Archive: f1.txt.zip extracting: f1.txt [root@centos7 adir]#ls a1.txt f1.txt f1.txt.zip 将目录testdir2压缩为testdir2.gz [root@centos7 data]#ls testdir testdir2 [root@centos7 data]#zip -r testdir2.zip testdir2 adding: testdir2/ (stored 0%) adding: testdir2/w/ (stored 0%) adding: testdir2/adwa (stored 0%) [root@centos7 data]#ls testdir testdir2 testdir2.zip [root@centos7 data]#unzip -l testdir2.zip Archive: testdir2.zip Length Date Time Name --------- ---------- ----- ---- 0 03-29-2020 18:21 testdir2/ 0 03-29-2020 18:21 testdir2/w/ 0 03-29-2020 18:21 testdir2/adwa --------- ------- 0 3 files 压缩f1.txt,并添加注释"this is a file" [root@centos7 testdir]#zip -z f1.txt.zip f1.txt adding: f1.txt (stored 0%) enter new zip file comment (end with .): this is a file [root@centos7 testdir]#rm -rf f1.txt [root@centos7 testdir]#ls adir bdir f1.txt.zip [root@centos7 testdir]#unzip -z f1.txt.zip Archive: f1.txt.zip this is a file xz命令: 1.用途、注意: xz命令用来压缩/解压缩.xz格式的文件。xz在压缩/解压时,默认情况下是不保留原文件的。 2.使用格式:

#xz [OPTION]… [FILE]… [option]: -z:强制压缩 -d:强制解压缩 -t:测试压缩文件的完整性 -l:列出关于.xz文件的消息 -k:压缩/解压缩时保留不删除原文件。 -f:在压缩/解压缩时,强制覆盖同名文件。 -等级:(-0~-9),默认是等级6, 且在使用等级7-9之前,压缩/解压缩的内存使用量已被考虑在内。 -v:压缩/解压缩时显示过程信息 -q:静默模式 -Tnum,最多使用num个线程,默认值是1。

3.xz命令使用实例: 将f2.txt文件压缩为.xz格式,并查看该压缩包的信息。 [root@centos7 testdir]#ls adir bdir f2.txt f3.txt [root@centos7 testdir]#xz f2.txt [root@centos7 testdir]#ls adir bdir f2.txt.xz f3.txt [root@centos7 testdir]#file f2.txt.xz f2.txt.xz: XZ compressed data [root@centos7 testdir]#xz -l f2.txt.xz Strms Blocks Compressed Uncompressed Ratio Check Filename 1 1 18.4 KiB 122.6 MiB 0.000 CRC64 f2.txt.xz 解压缩f2.txt.xz文件,显示解压缩过程,并保留压缩包。 [root@centos7 testdir]#ls adir bdir f2.txt.xz f3.txt [root@centos7 testdir]#xz -dkv f2.txt.xz [root@centos7 testdir]#ls adir bdir f2.txt f2.txt.xz f3.txt tar命令: 1.用途、注意: tar命令先将文件或目录打包成.tar格式的包,然后用压缩程序(gzip,bzip2等命令)压缩成.tar.gz,.tar.bz2等格式的压缩包。tar本身不具有压缩功能,但用来压缩和解压文件,它是可以是通过调用其他程序的压缩功能实现的。tar命令默认情况下打包/压缩/解压缩后,源文件保留。如果打包当前目录下所有文件,tar是不打包隐藏文件的,直接打包本目录,就打包隐藏文件了。 2.命令格式:

#tar [option…] [File]… 【option:】 -c:创建压缩文件。 -x:解压缩文件。 -f:目标文件名,即压缩包名(注意:f参数要放到参数最后,后跟压缩包名,压缩包名字是随便起的,但一般按照格式来,便于辨认)。 -z:使用gzip压缩或解压,生成/解压缩.tar.gz格式的文件。 -j:使用bzip2格式压缩或解压,生成/解压缩.tar.bz2格式的文件。 -J:使用xz格式压缩或解压,生成/解压缩.tar.xz格式的文件。 -Z:将打包后的文件用compress压缩,格式为.tar.Z。 -t:查看压缩包内有哪些文件,需要与-f参数一起使用。 -v:显示压缩或解压缩的过程。 -C:指定解压缩后的文件所在的目录 -p:压缩/解压缩时保留原来的权限。 -N “yyyy/mm/dd”:在文件夹中,比某个日期新的文件才备份(同时目录下的子目录会自动打包备份,不看子目录日期,因为子目录内可能存有所需日期的文件)。 -T:打包指定文件中包含的文件(绝对路径)。 “- - exclude 文件”:创建压缩文件时,排除指定的文件或目录。 -A:新增tar打包文件到已存在的打包文件内。 -r:新增文件到已经打包的文件内。 -u:只附加比打包文件中新的文件。 “- - delete 文件”:删除tar包中的某文件。

使用–delete、-u、-r、-A的时候,后面跟的备份文件都必须为未压缩的,若备份文件已经压缩,需要使用gunzip先解压,操作完后再gzip;也就是说,不能对tar.gz、tar.bz2等文件直接操作的; 3.tar命令实例: 运用tar命令将adir目录打包,打包后名称为adir.tar [root@centos7 data]#ls adir testdir testdir2 testdir2.zip [root@centos7 data]#tar -cf adir.tar adir [root@centos7 data]#ls adir adir.tar testdir testdir2 testdir2.zip 将adir目录打包后压缩为.gz格式的压缩包。 [root@centos7 data]#ls adir testdir testdir2 testdir2.zip [root@centos7 data]#tar -czvf adir.tar.gz adir/ adir/ adir/a1.txt adir/f1.txt.zip adir/f1.txt adir/tar adir/b1.txt [root@centos7 data]#ls adir adir.tar.gz testdir testdir2 testdir2.zip 查看adir.tar.gz压缩包内的文件 [root@centos7 data]#tar -tf adir.tar.gz adir/ adir/a1.txt adir/f1.txt.zip adir/f1.txt adir/tar adir/b1.txt 向testdit.tar包中新增文件test.txt [root@centos7 test]#ls testdir testdir1 testdir.tar test.txt [root@centos7 test]#tar -r test.txt -f testdir.tar [root@centos7 test]#tar -tf testdir.tar testdir/ testdir/adir/ testdir/adir/a1.txt testdir/adir/f1.txt.zip testdir/adir/f1.txt test.txt 将book.txt.tar包添加到testdir.tar包中 [root@centos7 test]#ls book.txt book.txt.tar testdir testdir.tar [root@centos7 test]#tar -A book.txt.tar -f testdir.tar [root@centos7 test]#tar -tf testdir.tar //tar包添加进来后,会恢复成相应文件和目录 testdir/ testdir/adir1/ testdir/adir2/ testdir/a.txt testdir/book2.txt book1.txt 删除testdt.tar包中的book2.txt文件 [root@centos7 test]#tar --delete testdir/book2.txt -f testdir.tar [root@centos7 test]#tar -tf testdir.tar testdir/ testdir/adir1/ testdir/adir2/ testdir/a.txt book1.txt 删除file.tar包中的.a22.sh隐藏文件。 [root@centos7 test]#tar -tf file.tar testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/.a22.sh testdir2/-. [root@centos7 test]#tar --delete testdir2/.a22.sh -f file.tar [root@centos7 test]#tar -tf file.tar testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/-. 备份压缩/root/test/testdir目录下比2020年4月2日新的文件。 [root@centos7 testdir]#ll total 0 drwxr-xr-x 2 root root 20 Apr 4 10:54 adir1 drwxr-xr-x 2 root root 6 Mar 30 17:00 adir2 -rw-r--r-- 1 root root 0 Mar 30 17:00 a.txt -rw-r--r-- 1 root root 0 Mar 30 17:10 b.txt -rw-r--r-- 1 root root 0 Apr 4 10:49 new.sh [root@centos7 testdir]#ll adir1/ total 0 -rw-r--r-- 1 root root 0 Apr 4 10:54 qq.txt [root@centos7 testdir]#cd .. [root@centos7 test]#tar -N '2020/04/03' -czvf testdir.tar.gz testdir tar: Option --after-date: Treating date `2020/04/03' as 2020-04-03 00:00:00 testdir/ testdir/adir1/ testdir/adir1/qq.txt testdir/adir2/ tar: testdir/a.txt: file is unchanged; not dumped tar: testdir/b.txt: file is unchanged; not dumped testdir/new.sh [root@centos7 test]#tar -tf testdir.tar.gz testdir/ testdir/adir1/ testdir/adir1/qq.txt testdir/adir2/ testdir/new.sh 将/home和/data目录的所有东西都打包压缩成.gz格式,除/home/bash目录; [root@centos7 home]#tar -zcvf myfile.tar.gz /home/* /data --exclude /home/bash 查找/root/test/testdir目录下以.sh和.txt结尾的文件,并打包压缩成file.tar.gz 方法一: [root@centos7 test]#find testdir/ -name "*.txt" -o -name "*.sh" >list.txt [root@centos7 test]#cat list.txt testdir/adir1/qq.txt testdir/a.txt testdir/b.txt testdir/new.sh [root@centos7 test]#tar -zcvf file.tar.gz -T /root/test/list.txt testdir/adir1/qq.txt testdir/a.txt testdir/b.txt testdir/new.sh 方法二: [root@centos7 test]#find testdir/ -name "*.txt" -o -name "*.sh" testdir/adir1/qq.txt testdir/a.txt testdir/b.txt testdir/new.sh [root@centos7 test]#find testdir/ -name "*.txt" -o -name "*.sh" |tar -czvf file.tar.gz -T - testdir/adir1/qq.txt testdir/a.txt testdir/b.txt testdir/new.sh [root@centos7 test]#tar -tf file.tar.gz testdir/adir1/qq.txt testdir/a.txt testdir/b.txt testdir/new.sh 打包/root/test/testdir2目录下的所有文件(包括隐藏文件),除去testdir2/a.txt文件 (注意:如adir或adir/都指该目录,adir/*指该目录下的所有文件但不包括隐藏文件) 方法一:直接打包目录(推荐直接打包目录,会包含隐藏文件和命名不规范的文件) [root@centos7 testdir2]#ls -a -. . .. .a22.sh a.txt dir1 dir2 [root@centos7 test]#tar -cvf file.tar testdir2 --exclude testdir2/a.txt testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/.a22.sh testdir2/-. [root@centos7 test]#ls file.tar testdir testdir2 testdir.tar.gz [root@centos7 test]#tar -tf file.tar testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/.a22.sh testdir2/-. 方法二:将隐藏文件再独自加入到tar包中。 [root@centos7 test]#tar -tf file.tar testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/-. [root@centos7 test]#ls file.tar testdir testdir2 testdir.tar [root@centos7 test]#tar -r testdir2/.a22.sh -f file.tar [root@centos7 test]#tar -tf file.tar testdir2/ testdir2/dir1/ testdir2/dir2/ testdir2/-. testdir2/.a22.sh


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有